package com.zzyl.nursing.dto;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;

/**
 * 老人信息查询DTO（接收前端查询参数，支持分页和多条件筛选）
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ElderQueryDTO {

    /**
     * 状态（0：禁用，1：启用），可选参数（为空时不筛选状态）
     */
    private Integer status;

    /**
     * 当前页（必填，从1开始）
     */
    @NotNull(message = "当前页不能为空")
    @Min(value = 1, message = "当前页必须大于等于1")
    private Integer pageNum;

    /**
     * 每页条数（必填，正整数）
     */
    @NotNull(message = "每页条数不能为空")
    @Min(value = 1, message = "每页条数必须大于等于0") // 允许0表示查全部（视业务场景调整）
    private Integer pageSize;

    /**
     * 老人姓名（可选参数，模糊查询）
     */
    private String name;

    /**
     * 身份证号（可选参数，精确或模糊查询）
     */
    @Pattern(regexp = "^(\\d{18}|\\d{17}X|\\d{15})$", message = "身份证号格式不正确")
    private String idCardNo;
}